/*
 * v1.1 by tonydon site:txdnet.cn
 * netbeansIDE 7.1
 */
package cn.txdnet.txcms.admin.action;
import cn.txdnet.txcms.domain.Manager;
import cn.txdnet.txcms.service.AdminService;
import cn.txdnet.txweb.model.ModelUtil;
import cn.txdnet.txweb.model.ModelView;
import cn.txdnet.txweb.utils.Message;
import cn.txdnet.txweb.utils.SessionUtil;
import cn.txdnet.txweb.utils.WebUtil;
import javax.servlet.http.HttpServletRequest;
import txdnet.util.coder.Md5;
/**
 *
 * @author txdnet
 */
public class LoginAction {
    
    /*
     * 管理员登陆入口
     */
    public ModelView sign_in(HttpServletRequest req){
        String mgrname = WebUtil.getNick(req, "mgrname", null);
        String key = WebUtil.getNoNull(req, "key", null);
        String vcode = WebUtil.getNoNull(req, "vcode", null);
        
        String svcode = SessionUtil.getVcodeAndRemove(req);
        
        if(vcode==null || svcode==null || !svcode.equalsIgnoreCase(vcode)){
            return ModelUtil.getTextModel(Message.MSG_VCODE_ERR);
        }
        
        if(mgrname==null || key==null){
            return ModelUtil.getTextModel(Message.MSG_FIELD_ERR);
        }
        
        Manager mgr = AdminService.loginQuery(mgrname);
        // 开始认证信息
        if(mgr==null || 
           !Md5.encode( mgr.getMgrkey().concat(svcode.toLowerCase()) ).equals(key) )
        {
            return ModelUtil.getTextModel(Message.MSG_VALID_ERR);
        }else{
            // 认证成功
            SessionUtil.setManager(req, mgr);
            return ModelUtil.getTextModel(Message.MSG_SUCCESS);
        }
    }
    
    /*
     * 检查登陆状态
     */
    public ModelView recheck_session(HttpServletRequest req){
        Object o = SessionUtil.getManager(req);
        if(o==null){
            return ModelUtil.getTextModel(Message.MSG_FAIL);
        }else{
            return ModelUtil.getTextModel(Message.MSG_SUCCESS);
        }
    }
    
    /**
     * 得到服务器毫秒时间用于提示客户端时间调整
     * @return 
     */
    public ModelView get_server_times(){
        return ModelUtil.getTextModel(System.currentTimeMillis());
    }
}
